A Program Analysis for Tool-supported Refactoring of Aspect-oriented Programs
نویسندگان
چکیده
Aspect-oriented programming (AOP) has been proposed for improving the modularity of implementations that cannot be encapsulated with traditional means, so called crosscutting concerns. It introduces new adaptation concepts that allow the structural extension of implementation modules and the adaptation of existing program behavior. The adaptation concepts are often achieved by new language mechanisms and constructs, such as pointcut and advice. A pointcut specifies where and when an advice is executed by selecting well-defined points in the program execution, so called join points. Every time a join point is executed, some runtime support looks for matching pointcuts. If a matching pointcut is defined, every bound advice is executed. With this complex but powerful mechanism, aspects can declare an adaptation without modifying the source of the adapted implementation module. For selecting a set of join points, a pointcut can specify structural and behavioral properties that have all desired join points in common. These properties are anchored in internal program structures, such as the program’s name space, code containment, inheritance relationships or the
منابع مشابه
Refactoring Aspect-Oriented Programs
Refactoring is the process of changing a program to improve its internal structure and reusability, without altering the external behavior of the program. It is a disciplined way to clean up code that minimizes the chances of introducing bugs. In this paper, we propose a systemic approach to refactoring aspect-oriented programs. To this end, we rst investigate the impact of existing object-orie...
متن کاملAJcFgraph - AspectJ Control Flow Graph Builder for Aspect-Oriented Software
The ever-growing usage of aspect-oriented development methodology in the field of software engineering requires tool support for both research environments and industry. So far, tool support for many activities in aspect-oriented software development has been proposed, to automate and facilitate their development. For instance, the AJaTS provides a transformation system to support aspect-orient...
متن کاملMaking refactoring safer through impact analysis
Currently most developers have to apply manual steps and use test suites to improve confidence that transformations applied to object-oriented (OO) and aspect-oriented (AO) programs are correct. However, it is not simple to do manual reasoning, due to the nontrivial semantics of OO and AO languages. Moreover, most refactoring implementations contain a number of bugs since it is difficult to est...
متن کاملProgram Refactoring, Program Synthesis, and Model-Driven Development
Program refactoring, feature-based and aspect-oriented software synthesis, and model-driven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs to other programs. In this paper, I explore their underlying connections by reviewing recent advances in ea...
متن کاملDesign and Evaluation of an Automated Aspect Mining Tool
Attention to aspect oriented programming (AOP) is rapidly growing as its benefits in large software system development and maintenance are increasingly recognized. However, existing large software systems, which could benefit most from refactoring into AOP, still remain unchanged in practice, due to the high cost of the refactoring. Automatic identification and extraction of aspects would not o...
متن کامل